package bridge

type Notification interface {
	notify() string
}

type Notice struct {
	sender MsgSender
}

func (n *Notice) notify() string {
	return n.sender.Send()
}

func NewNotice(sender MsgSender) *Notice {
	return &Notice{sender: sender}
}

type Warning struct {
	sender MsgSender
}

func NewWarning(sender MsgSender) *Warning {
	return &Warning{sender: sender}
}

func (w *Warning) notify() string {
	return w.sender.Send()
}

type MsgSender interface {
	Send() string
}

type SmsSender struct {
}

func (s *SmsSender) Send() string {
	//TODO implement me
	panic("implement me")
}

type EmailSender struct {
}

func (s *EmailSender) Send() string {
	//TODO implement me
	panic("implement me")
}
